package com.yabushan.system.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.yabushan.common.exception.CustomException;
import com.yabushan.common.utils.StringUtils;
import com.yabushan.system.domain.YmxTemplateInfo;
import com.yabushan.system.domain.vo.YmxAsinTemplateInfoVo;
import com.yabushan.system.domain.vo.YmxGifiTemplateInfoVo;
import com.yabushan.system.service.IYmxTemplateInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yabushan.system.mapper.YmxAsinTemplateInfoMapper;
import com.yabushan.system.domain.YmxAsinTemplateInfo;
import com.yabushan.system.service.IYmxAsinTemplateInfoService;

import javax.annotation.Resource;

/**
 * 模板主键Service业务层处理
 *
 * @author yabushan
 * @date 2021-04-14
 */
@Service
public class YmxAsinTemplateInfoServiceImpl implements IYmxAsinTemplateInfoService {
    @Resource
    private YmxAsinTemplateInfoMapper ymxAsinTemplateInfoMapper;

    @Resource
    private IYmxTemplateInfoService ymxTemplateInfoService;

    /**
     * 查询模板主键
     *
     * @param asinTemplateId 模板主键ID
     * @return 模板主键
     */
    @Override
    public YmxAsinTemplateInfo selectYmxAsinTemplateInfoById(String asinTemplateId) {
        return ymxAsinTemplateInfoMapper.selectYmxAsinTemplateInfoById(asinTemplateId);
    }

    /**
     * 查询模板主键列表
     *
     * @param ymxAsinTemplateInfo 模板主键
     * @return 模板主键
     */
    @Override
    public List<YmxAsinTemplateInfo> selectYmxAsinTemplateInfoList(YmxAsinTemplateInfo ymxAsinTemplateInfo) {
        List<YmxAsinTemplateInfoVo> asinTemplateInfoVoList = new ArrayList<>();
        List<YmxAsinTemplateInfo> ymxAsinTemplateInfos = ymxAsinTemplateInfoMapper.selectYmxAsinTemplateInfoList(ymxAsinTemplateInfo);
        /*int size = ymxAsinTemplateInfos.size();
        if (size != 0) {
            for (int i = 0; i < size; i++) {
                YmxAsinTemplateInfo templateInfo = ymxAsinTemplateInfos.get(i);
                String templateId = templateInfo.getTemplateId();
                YmxAsinTemplateInfoVo asinTemplateInfoVo = new YmxAsinTemplateInfoVo();
                asinTemplateInfoVo.setAsin(templateInfo.getAsin());
                asinTemplateInfoVo.setAsinTemplateId(templateInfo.getAsinTemplateId());
                asinTemplateInfoVo.setAsinTemplateName(templateInfo.getAsinTemplateName());
                asinTemplateInfoVo.setOrderName(templateInfo.getOrderName());
                asinTemplateInfoVo.setOrderImage(templateInfo.getOrderImage());
                asinTemplateInfoVo.setDiscountCode(templateInfo.getDiscountCode());
                asinTemplateInfoVo.setWarrantyStartDate(templateInfo.getWarrantyStartDate());
                asinTemplateInfoVo.setWarrantyEndDate(templateInfo.getWarrantyEndDate());
                YmxTemplateInfo ymxTemplateInfo = new YmxTemplateInfo();
                ymxTemplateInfo.setTemplateId(templateId);
                YmxTemplateInfo info = ymxTemplateInfoService.selectYmxTemplateInfoById(templateId);
                asinTemplateInfoVo.setTemplateId(info.getTemplateId());
                asinTemplateInfoVo.setTemplateName(info.getTemplateName());
                asinTemplateInfoVoList.add(asinTemplateInfoVo);
            }
        }*/
        return ymxAsinTemplateInfos;
    }

    /**
     * 新增模板主键
     *
     * @param ymxAsinTemplateInfo 模板主键
     * @return 结果
     */
    @Override
    public int insertYmxAsinTemplateInfo(YmxAsinTemplateInfo ymxAsinTemplateInfo) {
        ymxAsinTemplateInfo.setAsinTemplateId(StringUtils.getUUID());
        YmxAsinTemplateInfo templateInfo = new YmxAsinTemplateInfo();
        String asin = ymxAsinTemplateInfo.getAsin();
        templateInfo.setAsin(asin);
        List<YmxAsinTemplateInfo> ymxAsinTemplateInfos = ymxAsinTemplateInfoMapper.selectYmxAsinTemplateInfoList(templateInfo);
        if (ymxAsinTemplateInfos.size() != 0) {
            throw new CustomException("该ASIN已存在，不能重复创建");
        }
        return ymxAsinTemplateInfoMapper.insertYmxAsinTemplateInfo(ymxAsinTemplateInfo);
    }

    /**
     * 修改模板主键
     *
     * @param ymxAsinTemplateInfo 模板主键
     * @return 结果
     */
    @Override
    public int updateYmxAsinTemplateInfo(YmxAsinTemplateInfo ymxAsinTemplateInfo) {
        return ymxAsinTemplateInfoMapper.updateYmxAsinTemplateInfo(ymxAsinTemplateInfo);
    }

    /**
     * 批量删除模板主键
     *
     * @param asinTemplateIds 需要删除的模板主键ID
     * @return 结果
     */
    @Override
    public int deleteYmxAsinTemplateInfoByIds(String[] asinTemplateIds) {
        return ymxAsinTemplateInfoMapper.deleteYmxAsinTemplateInfoByIds(asinTemplateIds);
    }

    /**
     * 删除模板主键信息
     *
     * @param asinTemplateId 模板主键ID
     * @return 结果
     */
    @Override
    public int deleteYmxAsinTemplateInfoById(String asinTemplateId) {
        return ymxAsinTemplateInfoMapper.deleteYmxAsinTemplateInfoById(asinTemplateId);
    }

    @Override
    public List<YmxAsinTemplateInfo> getAllList() {
        YmxAsinTemplateInfo ymxAsinTemplateInfo=new YmxAsinTemplateInfo();
        return ymxAsinTemplateInfoMapper.selectYmxAsinTemplateInfoList(ymxAsinTemplateInfo);
    }
}
